1. Field of the Invention
The present invention relates to a memory system for a computer which includes flash read-only-memory (ROM) for storing programming instructions for the basic input/output system (BIOS) and, more particularly, to a flash memory system which includes a utility which allows multiple types of flash memory devices to be programmed with a single utility program, and also provides disaster recovery to enable the flash ROM to be reprogrammed in the event that the data in the flash ROM becomes corrupted.
2. Description of the Prior Art
IBM-compatible personal computers normally contain a set of routines on a ROM chip within the computer, known as the basic input/output system (BIOS). These BIOS routines primarily control the input/output functions of the computer's peripheral devices, such as the display, keyboard and disc drives. In particular, these BIOS routines act as an interface to translate various software commands for the peripheral devices from the various application programs and disc operating system (DOS) to commands that are compatible with the hardware. In addition, the BIOS includes routines contain information or perform tasks that are fundamental to other aspects of the computer's operation, such as keeping track of the date and the time of day, for example for identifying the time of creation of a file in a file allocation table (FAT).
Occasionally, the BIOS needs to be updated for various reasons. For example, early BIOS versions did not support 31/2-inch floppy disc drives. Thus, older personal computers later equipped with 31/2-inch disc drives required a BIOS change. There are other situations which could require a BIOS update. For example, existing computer systems may include a version of BIOS that does not support a compact disc ROM or newer graphic standards. When the computer is upgraded as such, it is necessary for the BIOS ROM, normally connected to the motherboard inside the computer housing, to be replaced with a new ROM that contains the updated BIOS. Thus, for such BIOS updating, it is necessary that the computer case be opened and the motherboard removed. Once the motherboard is removed, the ROM chip which contains the BIOS is then replaced with the new ROM chip which contains the updated version of the BIOS. The motherboard is then replaced and the computer case is closed. As such, replacement of the BIOS chip is rather cumbersome and often is done by a computer technician, which can be relatively expensive.
In an effort to facilitate updating the BIOS in a personal computer, there is a trend toward storing the BIOS on a flash ROM. Such flash ROM BIOS systems offer several known advantages over existing systems. Firstly, flash ROMs allow for block erase and relatively quicker programming than known electrically erasable read-only memories (EEPROM). Secondly, flash ROMs allow the BIOS to be updated in a portable personal computer rather quickly and efficiently. However, such flash ROMs are known to become corrupt due to various sources including power surges. Thus, in any computer system which utilizes flash ROM for BIOS, it is necessary to provide what is known as flash disaster recovery. Flash disaster recovery relates to the ability to reprogram the BIOS in the flash ROM once the flash ROM has been determined to be corrupt. One system for providing flash disaster recovery for a computer system which utilizes flash ROM for BIOS is disclosed in U.S. application patent Ser. No. 07/885,805, filed on May 15, 1992 entitled "FLASH ROM PROGRAMMER", assigned to the same assignee as the assignee of the present application. In that system, a special purpose hardware interface is provided which allows for mode switching of a standard parallel port from a standard peripheral interface, such as a printer interface, to a special purpose interface to enable the BIOS to be loaded from an external ROM or another computer connected to the parallel port. Although such a system provides for flash disaster recovery, it may not be beneficial for end users who do not have the resources to reprogram the flash ROM by way of the parallel port.
Another known use for flash ROM memory is in socalled solid state disc systems. In such systems, a flash ROM is used in place of or along with a floppy or hard disc. In one known application, the flash memory solid state disc is interfaced to application programs by way of a software interface, such as MicroSoft's Flash File System. However, the Flash File System requires a hardware dependent low level software driver. Thus, in applications that require multiple types of flash memory, additional software drivers are required which increases the software overhead of the system.